package com.young.springboot.basic.service.mail;


import com.young.springboot.basic.event.AsyncMailEvent;
import com.young.springboot.basic.vo.mail.MailVo;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;

/**
 * @author hyy
 */
public interface MailService {
    /**
     * 发送文本邮件
     */
    void sendSimpleMail(MailVo vo);

    /**
     * 发送HTML邮件
     */
    public void sendHtmlMail(MailVo vo);

    /**
     * 发送带附件的邮件
     */
    public void sendAttachmentsMail(MailVo vo);

    /**
     * 获取配置文件中的发送者信息
     * @return
     */
    String getMailSendFrom();

    /**
     * 通过前端页面发送邮件
     * @return
     */
    MailVo sendMail(MailVo mailVo);


    /**
     * 使用异步监听的方式发送邮件
     * @param asyncMailEvent
     */
    void asyncSendMineMail(AsyncMailEvent asyncMailEvent);
}
